%zhp 6/15修改
%by ylx clq
addpath functions;
% Global Variables are avaliable for ALL FUNCTIONS
% >>> global variables settings
global P J I ci cI r LAMBDA CURRENT PIEs EYin ProfitPart EYI S
P = [.1, .5, .9]; % for test only
LAMBDA = 3;
ci=40; cI=200; r=100;
J = 3; I = 8;
N = 48; %N为需要计算到的call数，根据需求取 << hw: 这里N似乎和patient_number 重合了，是否删去？
load('j_all_all.mat');%请根据需要创建j_all_all作为一堆j_all的矩阵（如5000个）
j_all = j_all_all(1,:);%根据选择j_all中的第几行，此处选择第一行
Line = j_all;
patient_number = sum(Line > 0);
genPoisson(patient_number);
genPIE(patient_number);
% end global settings <<<
%Prop_Policy
init_time = ftimer(); % set main clock
[best_is, opt_profits, EYI, EYin, ProfitPart] = prop_policy(j_all, N);
%N表示该程序运行到的最大病人数
%EYI(1,n)表示有ncall时，EYI的值,这个矩阵只有一行
%EYin(1,n)表示有ncall时，∑EYi/n的值,这个矩阵只有一行,这里的i包括了I
%ProfitPart(1,n)表示有ncall时，Profit中rEΣX的部分
%ProfitPart(2,n)表示有ncall时，Profit中ciEΣYi的部分,为了与论文保持一致，此处i包括I（不应该包括）
%对错误原因的猜测是，作者在计算profit的时候，里面的ciEΣYi的部分，利用到了∑EYi/n（此处i包括I）
%但Profit里的ciEΣYi，不应该包括I，因为I的c是另外计算的，如果使用了，会导致I时期的“cI”＝ci+cI，多算了一部分
%ProfitPart(3,n)表示有ncall时，Profit中cIEΣYi的部分
fprintf("\n\n Prop.Policy Totle Time = %.1f seconds \n", ftimer()-init_time);
display(S)
display(best_is) % Display 好像不能加 ";"
% plot(1:patient_number,opt_profits);
%showTimer();

%------------------------calling other functions------------------------%
%round robin
init_time = ftimer();
[i_R,profits_R,EYI,EYin,ProfitPart]=round_robin(j_all,N);
fprintf("\n\n Round Robin Totle Time = %.1f seconds \n", ftimer()-init_time);



%以下内容未修改！！！！！！！！！！！！！！

%generate a random preference for both policy with preference
pref = randi([1,2], 1, patient_number);
%proposed policy with preference
[best_is_pref, opt_profits_pref] = prop_pref(j_all, pref)
%round robin with preference
[i_RP,profits_RP] = round_robin_pref(j_all, pref)

%--------------------------------figures--------------------------------%
%figure2
figure2(best_is, opt_profits, opt_profits_pref, profits_R, profits_RP)
%figure3
%figure4
%figure5
%figure6
%figure7

%figure10

%figure11

%figure12

%figure13

%figure14

%figure15

